#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
#define PII pair<char,bool>
//----------------------------------------------------------------------------//
int dx[4] = { -1, 0, 1, 0 };
int dy[4] = { 0, 1, 0 ,-1 };
int n;PII a[100][100];
bool check(int x,int y)//i,j
{
	for(int i=0;i<4;i++)
	{
		int a2=x+dx[i],b=y+dy[i];
		if(a2<1||a2>n||b<1||b>n) continue;
		if(a[a2][b].fi!='#') return false;
	}
	return true;
}
void solve()
{
	sd(n);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j].fi;
			if(a[i][j].fi=='#') a[i][j].se=true;
			else a[i][j].se=false;
		}

	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j].fi=='#')
			{
				if(!check(i,j)) cout<<'.';
				else cout<<'#',ans++;
			}
			else cout<<'.';
		}
		puts("");
	}
	pd(ans);
}
		


int main()
{
	int T=1;
	//sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}